package com.tgy.leetcode;

/**
 *
 * 给你一个链表的头节点 head 和一个整数 val ，请你删除链表中所有满足 Node.val == val 的节点，并返回 新的头节点 。
 */

public class _203_移除链表元素_01 {


    public static ListNode removeElements(ListNode head, int val) {

        ListNode dummy = new ListNode();

        dummy.next = head;

        ListNode preNode = dummy,curNode = head;

        while (curNode != null) {

            if (curNode.val == val) {

                preNode.next = curNode.next;
            }else {
                preNode = curNode;
            }

            curNode = curNode.next;
        }

        return dummy.next;
    }

    public static void main(String[] args) {

        int[] nodeVals =  new int[]{2,1,2,1,3};
        ListNode node = ListNode.general(nodeVals);

        ListNode newNode = removeElements(node,3);

        ListNode.printListNode(newNode);
    }
}
